﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ПорядокПризнанияРасходовПоТоварам
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"bab96851-d13c-44e0-a2b6-edfec945ba21\", \"Представление\":\"ПоОплатеПоставщику\"}")]
		ПоОплатеПоставщику = 0,//По оплате поставщику
		[EnumMember(Value = "{\"Ссылка\":\"26d39416-6f95-4002-81be-cfc3c49f59c9\", \"Представление\":\"ПоФактуРеализации\"}")]
		ПоФактуРеализации = 1,//По факту реализации
		[EnumMember(Value = "{\"Ссылка\":\"0cd0972d-3e2d-4e4c-a9f2-5160cdd9d085\", \"Представление\":\"ПоФактуПолученияДохода\"}")]
		ПоФактуПолученияДохода = 2,//По факту получения дохода
	}
	public static partial class ПорядокПризнанияРасходовПоТоварам_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ПоОплатеПоставщику = new Guid("feedb6a2-45c9-21ba-44e0-d13cbab96851");//По оплате поставщику
		public static readonly Guid ПоФактуРеализации = new Guid("c3cfbe81-9fc4-c959-4002-6f9526d39416");//По факту реализации
		public static readonly Guid ПоФактуПолученияДохода = new Guid("6051f2a9-d9cd-85d0-4e4c-3e2d0cd0972d");//По факту получения дохода
		public static ПорядокПризнанияРасходовПоТоварам Получить(this ПорядокПризнанияРасходовПоТоварам Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ПорядокПризнанияРасходовПоТоварам Получить(this ПорядокПризнанияРасходовПоТоварам Значение, Guid Ссылка)
		{
			if(Ссылка == ПоОплатеПоставщику)
			{
				return ПорядокПризнанияРасходовПоТоварам.ПоОплатеПоставщику;
			}
			else if(Ссылка == ПоФактуРеализации)
			{
				return ПорядокПризнанияРасходовПоТоварам.ПоФактуРеализации;
			}
			else if(Ссылка == ПоФактуПолученияДохода)
			{
				return ПорядокПризнанияРасходовПоТоварам.ПоФактуПолученияДохода;
			}
			return ПорядокПризнанияРасходовПоТоварам.ПустаяСсылка;
		}
		public static byte[] Ключ(this ПорядокПризнанияРасходовПоТоварам Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ПорядокПризнанияРасходовПоТоварам Значение)
		{
			switch (Значение)
			{
				case ПорядокПризнанияРасходовПоТоварам.ПоОплатеПоставщику: return ПоОплатеПоставщику;
				case ПорядокПризнанияРасходовПоТоварам.ПоФактуРеализации: return ПоФактуРеализации;
				case ПорядокПризнанияРасходовПоТоварам.ПоФактуПолученияДохода: return ПоФактуПолученияДохода;
			}
			return Guid.Empty;
		}
	}
}